<?php

class Category extends AppModel {
    var $name = 'Category';

    var $fields = array();

    var $validate = array(
        'name' => array(
            'notempty' => array(
                'rule' => array('notempty'),
                'message' => 'Tên không được rỗng.',
                'allowEmpty' => false,
                'required' => true,
            ),

            'maxlength' => array(
                'rule' => array('maxlength', 100),
                'message' => 'Tên không được vượt quá 100.',
                'allowEmpty' => false,
                'required' => true,
            ),
        ),

//        'als' => array(
//            'notempty' => array(
//                'rule' => array('notempty'),
//                'message' => 'Tên gọi khác không được rỗng.',
//                'allowEmpty' => false,
//                'required' => true,
//            ),
//        ),

        'sort' => array(
            'notempty' => array(
                'rule' => array('notempty'),
                'message' => 'Thứ tự không được rỗng.',
                'allowEmpty' => false,
                'required' => true,
            ),

            'alphaNumeric' => array(
                'rule' => array('naturalNumber'),
                'message' => 'Thứ tự phải là số nguyên dương.',
                'allowEmpty' => false,
                'required' => true,
            ),
        ),

    );

    /**
	 * Get all
	 *
	 * @param type  meta
	 * @return type  meta
	 * @access public
	 */
	function getAll($parent_id = 0, $sort = 'ASC'){
		return $this->find('all', array(
			//'fields' => $this->fields,
			'conditions' => array(
				'status' => 4,
				'parent_id' => (int)$parent_id
			),
			'order' => array('sort' => $sort)
		));
	}

	/**
	 * get list
	 *
	 * @param type  meta
	 * @return type  meta
	 * @access public
	 */
	function getList($parent_id = 0) {
		return $this->find('list', array(
			'fields' => array('id', 'name'),
			'conditions' => array(
				'status' => 4,
				'parent_id' => (int)$parent_id
			),
			'order' => array('sort' => 'ASC')
		));
	}


	/**
	 * Get info by id
	 *
	 * @param type  meta
	 * @return type  meta
	 * @access public
	 */
	function getInfoById($id = null, $fields = array()){
		if(empty($id)) return array();

		return $this->find('first', array(
			'fields' => $fields,
			'conditions' => array(
				'id' => $id,
				'status' => 4
			)
		));
	}

}
